x86, hvm: Add a perf counter for CR0.WP=0 emulation.
authorKeir Fraser <keir.fraser@citrix.com>
Tue, 8 Jan 2008 09:57:59 +0000 (09:57 +0000)
committerKeir Fraser <keir.fraser@citrix.com>
Tue, 8 Jan 2008 09:57:59 +0000 (09:57 +0000)
Signed-off-by Kevin Tian <kevin.tian@intel.com>

xen/arch/x86/mm/shadow/multi.c
xen/include/asm-x86/perfc_defn.h

index 4777e54080a7438450d9439504dffbd206ccd05e..1c4e7fad706b22a1c1d704b286586a432a353770 100644 (file)
@@ -2899,7 +2899,10 @@ static int sh_page_fault(struct vcpu *v,
     if ( is_hvm_domain(d) 
          && unlikely(!hvm_wp_enabled(v)) 
          && regs->error_code == (PFEC_write_access|PFEC_page_present) )
+    {
+        perfc_incr(shadow_fault_emulate_wp);
         goto emulate;
+    }
 
     perfc_incr(shadow_fault_fixed);
     d->arch.paging.log_dirty.fault_count++;
index eb18b5fe384fbc820490e6686ed1278915a205bc..460c1f2b58f3e009dd5d28fe22b6a94325c05951 100644 (file)
@@ -56,6 +56,7 @@ PERFCOUNTER(shadow_fault_emulate_read, "shadow_fault emulates a read")
 PERFCOUNTER(shadow_fault_emulate_write, "shadow_fault emulates a write")
 PERFCOUNTER(shadow_fault_emulate_failed, "shadow_fault emulator fails")
 PERFCOUNTER(shadow_fault_emulate_stack, "shadow_fault emulate stack write")
+PERFCOUNTER(shadow_fault_emulate_wp, "shadow_fault emulate for CR0.WP=0")
 PERFCOUNTER(shadow_fault_mmio,     "shadow_fault handled as mmio")
 PERFCOUNTER(shadow_fault_fixed,    "shadow_fault fixed fault")
 PERFCOUNTER(shadow_ptwr_emulate,   "shadow causes ptwr to emulate")